package resman.database;

import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 * Sessão cuja operação é uma transação
 */
public class TransSession
{

	/**
	 * Sessão
	 */
	private Session session;
	
	/**
	 * Transação
	 */
	private Transaction transaction;

	/**
	 * Constrói uma nova sessão de transação
	 * @param session Sessão
	 * @param isTransaction Indicador de transação
	 */
	public TransSession(Session session, boolean isTransaction)
	{
		this.session = session;
		this.transaction = (isTransaction) ? session.beginTransaction() : null;
	}

	/**
	 * Encerra a sessão
	 */
	public void close()
	{
		if (transaction != null)
			transaction.commit();
		session.close();
	}

	public Session getSession()
	{
		return session;
	}
	
	public void setSession(Session session)
	{
		this.session = session;
	}
	
	public Transaction getTransaction()
	{
		return transaction;
	}
	
	public void setTransaction(Transaction transaction)
	{
		this.transaction = transaction;
	}

}
